package com.niit.session13.homework;

public class Universe {
	//首先需要把宇宙的宽度和纸的厚度转换成同一单位。然后，我们需要计算折叠纸张的次数，直到它的厚度大于等于宇宙的宽度。
//	光年：光一年行进的距离，
    public static void main(String[] args) {
        // 宇宙宽度：930亿光年
        double universeWidth = 93000000000.0;
        // 1年等于多少天
        double daysInOneLightYear = 365.25;
        // 1天有多少秒
        double secondsInOneDay = 24 * 60 * 60;
        // 光速，以米每秒为单位
        double speedOfLight = 299792458;
        // 计算1光年有多少米
        double lightYearToMeters = daysInOneLightYear * secondsInOneDay * speedOfLight;
        // 把宇宙宽度转换成米
        double universeWidthInMeters = universeWidth * lightYearToMeters;
        // 纸的厚度：0.1毫米
        double paperThickness = 0.1;
        // 把纸的厚度转换成米
        double paperThicknessInMeters = paperThickness / 1000;
        // 计算折叠次数
        int foldingCount = calculateFoldingCount(universeWidthInMeters, paperThicknessInMeters);
        System.out.println("纸需要折叠 " + foldingCount + " 次才能填满整个宇宙。");
    }
    public static int calculateFoldingCount(double universeWidthInMeters, double paperThicknessInMeters) {
        int count = 0;
        while (paperThicknessInMeters < universeWidthInMeters) {
            paperThicknessInMeters *= 2;
            count++;
        }
        return count;
    }
}
